/**
 *
 * @params  包含权限信息的异步全量路由表
 * @params  权限字段
 * @returns 过滤后的路由表
 *
 */

function filterRoutes(routes: any, permissions: any) {
  return routes.filter((item: any) => {
    if (item.meta && item.meta.permissions) {
      // 检查路由项的权限是否在权限数组中
      const hasPermission = item.meta.permissions.some((permission: any) =>
        permissions.includes(permission)
      );
      if (!hasPermission) {
        return false; // 不满足权限要求，过滤掉该路由项
      }
    }
    if (item.children) {
      // 递归过滤子路由项
      item.children = filterRoutes(item.children, permissions);
    }
    return true; // 保留满足权限要求的路由项
  });
}
export default filterRoutes;
